// import 'dart:async';
// import 'dart:io';
//
// // import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart';
// // import 'package:flutter_bmflocation/bdmap_location_flutter_plugin.dart';
// // import 'package:flutter_bmflocation/flutter_baidu_location.dart';
// // import 'package:flutter_bmflocation/flutter_baidu_location_android_option.dart';
// // import 'package:flutter_bmflocation/flutter_baidu_location_ios_option.dart';
// // import 'package:flutter_bmflocation/flutter_bmflocation.dart';
// import 'package:flutter_syt/application.dart';
// import 'package:flutter_syt/utils/permission_helper.dart';
// import 'package:flutter_syt/utils/utils_dlog.dart';
//
// // class LocationData {
// //   bool isLocationSuccess = false;
// //
// //   // BaiduLocation? location;
// // }
//
// class LocationHelper {
//   static LocationHelper get instance => _getInstance()!;
//   static LocationHelper? _instance;
//   LocationHelper._internal();
//
//   static LocationHelper? _getInstance() {
//     if (_instance == null) _instance = LocationHelper._internal();
//     return _instance;
//   }
//
//   // static final coorType = 'BD09ll';
//   // final LocationFlutterPlugin _locationPlugin = new LocationFlutterPlugin();
//
//   result(Function(LocationData data) backLocation) {
//     if (Platform.isIOS) {
//       //接受定位回调
//       // _locationPlugin.singleLocationCallback(callback: (BaiduLocation result) {
//       //   //result为定位结果
//       //   stopLocation();
//       //   backLocation(LocationData()
//       //     ..location = result
//       //     ..isLocationSuccess = result.latitude != null);
//       // });
//     } else if (Platform.isAndroid) {
//       //接受定位回调
//       // _locationPlugin.seriesLocationCallback(callback: (BaiduLocation result) {
//       //   //result为定位结果
//       //   DLog(result.address);
//       //   stopLocation();
//       //   backLocation(LocationData()
//       //     ..location = result
//       //     ..isLocationSuccess = result.latitude != null);
//       // });
//     }
//     // _locationPlugin.seriesLocationCallback(callback: callback)
//     // }
//     // return _locationPlugin.onResultCallback().map(
//     //   (event) {
//     //     var bdLocation = BaiduLocation.fromMap(event);
//     //     print("---------------------------${bdLocation.getMap()}");
//     //     return LocationData()
//     //       ..isLocationSuccess = true
//     //       ..location = bdLocation;
//     //   },
//     // );
//   }
//
//   Future startLocation() async {
//     await PermissionHelper.checkLocationPermission(appContext.context!);
//     // PermissionStatus status = await Permission.locationWhenInUse.status;
//     // if (!status.isGranted) {
//     //   status = await Permission.locationWhenInUse.request();
//     //   if (!status.isGranted) {
//     //     var ctx = navigatorKey.currentContext;
//     //     if (ctx != null) {
//     //       PermissionHelper.showPermissionDialog(
//     //           ctx, S().missing_location_permission);
//     //     } else {
//     //       customShowToast(S().missing_location_permission);
//     //     }
//     //   }
//     // }
//     // PermissionStatus
//     // if (!status.isGranted) {
//     //   var ctx = navigatorKey.currentContext;
//     //   if (ctx != null) {
//     //     PermissionHelper.showPermissionDialog(
//     //         ctx, S().missing_location_permission);
//     //   } else {
//     //     customShowToast(S().missing_location_permission);
//     //   }
//     // }
//     // await _locationPlugin.stopLocation();
//
//     // await _setLocOption();
//     // if (Platform.isIOS) {
//     //   await _locationPlugin
//     //       .singleLocation({'isReGeocode': true, 'isNetworkState': true});
//     // } else {
//     //   await _locationPlugin.startLocation();
//     // }
//     //  _locationPlugin.singleLocation();
//   }
//
//   void stopLocation() {
//     // _locationPlugin.stopLocation();
//   }
//
//   Future setLocOption() async {
//     // BMFMapSDK.setAgreePrivacy(true);
//     // await _locationPlugin.setAgreePrivacy(true);
//
//     // BaiduLocationAndroidOption androidOption = BaiduLocationAndroidOption(
//     //     // coorType: 'bd09ll',
//     //     locationMode: BMFLocationMode.hightAccuracy,
//     //     isNeedAddress: true,
//     //     isNeedAltitude: true,
//     //     isNeedLocationPoiList: true,
//     //     isNeedNewVersionRgc: true,
//     //     isNeedLocationDescribe: true,
//     //     openGps: true,
//     //     locationPurpose: BMFLocationPurpose.sport,
//     //     coordType: BMFLocationCoordType.gcj02,
//     //     scanspan: 0
//     //     );
//
//     // BaiduLocationIOSOption iosOption = BaiduLocationIOSOption(
//     //     coordType: BMFLocationCoordType.gcj02,
//     //     // BMKLocationCoordinateType: 'BMKLocationCoordinateTypeBMK09LL',
//     //     desiredAccuracy: BMFDesiredAccuracy.best);
//
//     // await _locationPlugin.prepareLoc(
//     //     androidOption.getMap(), iosOption.getMap());
//     // BaiduLocationAndroidOption androidOption = BaiduLocationAndroidOption(
//     //     // coorType: 'bd09ll',
//     //     locationMode: BMFLocationMode.hightAccuracy,
//     //     isNeedAddress: true,
//     //     isNeedAltitude: true,
//     //     isNeedLocationPoiList: true,
//     //     isNeedNewVersionRgc: true,
//     //     isNeedLocationDescribe: true,
//     //     openGps: true,
//     //     locationPurpose: BMFLocationPurpose.sport,
//     //     coordType: BMFLocationCoordType.gcj02,
//     //     scanspan: 0);
//     //
//     // BaiduLocationIOSOption iosOption = BaiduLocationIOSOption(
//     //     coordType: BMFLocationCoordType.gcj02,
//     //     locationTimeout: 10,
//     //     reGeocodeTimeout: 10,
//     //     activityType: BMFActivityType.automotiveNavigation,
//     //     isNeedNewVersionRgc: true,
//     //     distanceFilter: 10,
//     //     // BMKLocationCoordinateType: 'BMKLocationCoordinateTypeBMK09LL',
//     //     desiredAccuracy: BMFDesiredAccuracy.best);
//     //
//     // await _locationPlugin.prepareLoc(
//     //     androidOption.getMap(), iosOption.getMap());
//   }
// }
